You are here: Statements and Functions > Accum
Syntax samples
ACCUM <expression>
ACCUM 10
ACCUM Var1
Accumulates, without consolidating, the specified quantity of entities at a location. ACCUM works like a gate that prevents entities from processing until a certain number arrive. Once the specified number of entities have accumulated, they will go through the gate and begin processing individually, independent of each other.
ACCUM can be used to model situations where several entities should be accumulated before they get processed. For example, when a resource processes orders at a work station, it may be more efficient to accumulate several orders before requesting the resource.
If you specify an ACCUM operation in a process for an individual entity, accumulation will occur by individual entity type. However, if you specify ALL as the processing entity, all entity types at that location will participate in the same accumulation.
The operation column of process edit tables only. ACCUM must be used at a location with enough capacity to accumulate the specified quantity.
Components
<expression>
The number of entities to accumulate. If this expression results in zero or one, it is ignored. If it results in a number greater than the location’s capacity or a negative number, the simulation will stop with an error.
This expression is evaluated every time an entity to be accumulated arrives, so the quantity to be accumulated can vary as the entities to be accumulated arrive. If an entity arrives that changes this expression to a number lower than the number of entities already accumulated, all of the accumulated entities begin to process.
Example
Entities named "Pallet" arrive at a location named "Loading" and accumulate in batches of 20. Entities named "Box" also arrive at Loading and accumulate in batches of 10. Only after the right number of boxes or pallets accumulates does ProModel request the forklift. The accumulation of Boxes and Pallets at Loading is entirely independent because the accumulation statements are in different records. Note that the forklift is used for two minutes per pallet or box, because each pallet and box process individually after accumulating all of them. While the accumulation of entities at Loading is by entity type, the accumulation at the location, "Storage" is independent of entity type since the ALL keyword denotes common processing for all entities at this location.
Process Table
Entity |
Location |
Operation (min) |
---|---|---|
Pallet |
Loading |
ACCUM 20 USE ForkliftFOR 2 |
Box |
Loading |
ACCUM 10 USE Forklift FOR 2 |
ALL |
Storage |
ACCUM 30 |
Routing Table
Blk |
Output |
Destination |
Rule |
Move Logic |
---|---|---|---|---|
1 |
Pallet |
Storage |
FIRST 1 |
MOVE FOR 5 |
1 |
Box |
Storage |
FIRST 1 |
MOVE FOR 5 |
1 |
ALL |
Loc3 |
FIRST 1 |
MOVE FOR 5 |
COMBINE, JOIN, and GROUP.